home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 7 / Amiga Format AFCD07 (Dec 1996, Issue 91).iso / serious / shareware / programming / gamesmaster / source / asm / sound / playsound.s < prev   
Encoding:
Text File  |  1996-09-13  |  3.2 KB  |  135 lines

  1. ;Sound Effect Demo
  2. ;-----------------
  3. ;This is a simple demo that plays a sound effect.  You have to supply your
  4. ;own IFF sound at the end of this file.
  5. ;
  6. ;Press LMB to play the sound.
  7. ;Press RMB to exit the demo.
  8.  
  9.     opt    o+
  10.  
  11.     INCLUDE    "exec/exec_lib.i"
  12.     INCLUDE    "games/games_lib.i"
  13.     INCLUDE    "games/games.i
  14.  
  15. CALL    MACRO
  16.     jsr    _LVO\1(a6)
  17.     ENDM
  18.  
  19.     SECTION    "Sound",CODE
  20.  
  21. ;==========================================================================;
  22. ;                             INITIALISE DEMO
  23. ;==========================================================================;
  24.  
  25. Start:    MOVEM.L    A0-A6/D1-D7,-(SP)
  26.     move.l    ($4).w,a6
  27.     lea    GMS_Name(pc),a1
  28.     moveq    #$00,d0
  29.     CALL    OpenLibrary
  30.     move.l    d0,GMS_Base
  31.     beq    Quit
  32.  
  33.     move.l    GMS_Base(pc),a6
  34.     CALL    AllocAudio
  35.     tst.w    d0
  36.     bne.s    AudioError
  37.  
  38.     lea    Sound_Gong(pc),a0
  39.     CALL    InitSound
  40.     tst.w    d0
  41.     bne.s    ReturnToDOS
  42.  
  43. ;==========================================================================;
  44.  
  45. ;==========================================================================;
  46.  
  47. MainLoop:
  48.     move.l    GMS_Base(pc),a6
  49.     CALL    Wait_OSVBL
  50.  
  51.     moveq    #JPORT1,d0
  52.     CALL    Read_Mouse
  53.     btst    #MB_RMB,d0
  54.     bne.s    ReturnToDOS
  55.     btst    #MB_LMB,d0
  56.     beq.s    MainLoop
  57.  
  58.     lea    Sound_Gong(pc),a0
  59.     CALL    PlaySoundPri
  60.     addq.w    #2,SAM_Octave(a0)
  61.     cmp.w    #OCT_A4,SAM_Octave(a0)
  62.     blt.s    .release
  63.     move.w    #OCT_G0S,SAM_Octave(a0)
  64.  
  65. .release
  66.     moveq    #JPORT1,d0
  67.     CALL    Read_Mouse
  68.     btst    #MB_LMB,d0
  69.     bne.s    .release
  70.     bra.s    MainLoop
  71.  
  72. ;===========================================================================;
  73. ;                              RETURN TO DOS
  74. ;===========================================================================;
  75.  
  76. ReturnToDOS:
  77.     move.l    GMS_Base(pc),a6
  78.     lea    Sound_Gong(pc),a0
  79.     CALL    FreeSound
  80.     CALL    FreeAudio
  81. AudioError:
  82.     move.l    GMS_Base(pc),a1
  83.     move.l    ($4).w,a6
  84.     CALL    CloseLibrary
  85. Quit    MOVEM.L    (SP)+,A0-A6/D1-D7
  86.     moveq    #$00,d0
  87.     rts
  88.  
  89. ;===========================================================================;
  90. ;                                  DATA
  91. ;===========================================================================;
  92.  
  93. GMS_Name:
  94.     dc.b    "games.library",0
  95.     even
  96. GMS_Base:
  97.     dc.l    0
  98.  
  99. AMT_PLANES =    1
  100.  
  101. ScreenStruct:
  102.     dc.l    "GSV1",0
  103.     dc.l    0,0,0                    ;Screen_Mem1/2/3
  104.     dc.l    0                        ;Screen link.
  105.     dc.l    Palette                  ;Address of screen palette.
  106.     dc.l    0                        ;Address of rasterlist.
  107.     dc.l    4                        ;Amt of colours in palette.
  108.     dc.w    320,256,320,256          ;Screen & Pic Height/Width.
  109.     dc.w    AMT_PLANES               ;Amt_Planes
  110.     dc.w    0,0                      ;Top Of Screen, X/Y
  111.     dc.w    0,0                      ;X/Y counters (for scrolling).
  112.     dc.l    0                        ;Special attributes.
  113.     dc.w    LORES                    ;Screen mode.
  114.     dc.b    INTERLEAVED              ;Screen type
  115.     dc.b    0                        ;Reserved
  116.     even
  117.  
  118. Palette    dc.w    $0000,$0DDD,$0666,$0222
  119.  
  120. Sound_Gong:
  121.     dc.l    "SMV1",0                 ;Structure version.
  122.     dc.w    CHANNEL_ALL              ;Channel to play through.
  123.     dc.w    1                        ;Priority.
  124.     dc.l    0                        ;Sample header
  125.     dc.l    0                        ;Sample address.
  126.     dc.l    0                        ;Sample length.
  127.     dc.w    OCT_C0S                  ;Sample period.
  128.     dc.w    100                      ;Sample volume.
  129.     dc.l    0    ;Sound attributes.
  130.     dc.l    Gong    ;Sound file.
  131.  
  132. Gong:    dc.b    "GAMESLIB:data/IFF.Lightning",0
  133.     even
  134.  
  135.